// 对axios进行二次封装

// 导入axios
import axios from "axios";

// 实例化axios对象
var service = axios.create({
    baseURL: process.env.REACT_APP_BASE_URL, //基准路径，公共前缀
    // 如果同时配置了 .env.development 和 .env.production ,
    //在开发环境下 baseURL 会替换为 '/api',
    //在生产环境下 basURL 会替换为 http://cdf.yantianfeng.com/
    timeout: 10 * 1000  //超时时间
})

// 设置请求拦截器
service.interceptors.request.use((config) => {
    // 设置请求头
    config.headers['Authorization'] = localStorage.getItem('token');
    // 设置第二个请求头
    // config.headers['X-token'] = localStorage.getItem('token');

    return config;
}, (error) => {
    return Promise.reject(error)
})


// 设置响应拦截器
service.interceptors.response.use((res) => {
    return res;
}, (error) => {
    // 错误状态码的出来
    if (error.response.status == 401) {
        alert('登录过期，请重新登录')
        //跳转到登录页
        //删除过期的token
    } else if (error.response.status == 404) {
        alert('请求资源路径写错了')
    } else if (error.response.status == 500) {
        alert('服务器内部错误')
    }
    return Promise.reject(error)
})

// 抛出

export default service;